home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac-Source 1994 July
/
Mac-Source_July_1994.iso
/
Updates, etc.
/
Metrowerks PPC Debugger Patches
/
1.0b1 release notes
next >
Wrap
Text File
|
1994-04-28
|
11KB
|
239 lines
Metrowerks 68K and PowerPC Debugger release notes
=================================================
Version: 1.0b1
Date: April 28, 1994
Author: Dan Podwall
This is a pre-DR3 release of the Metrowerks Debugger for
Power Macintosh. This version is functionally equivalent
to the debugger that will appear in the DR3 CodeWarrior
release. We are making this development version available
to address problems some users have had with the DR2
PowerPC debugger. The version that will be release will
have undergone further QA. Please help us by reporting
any problems you find with this interim release. Address
your reports to:
AppleLink: SUPPORTWERKS, with cc: to DPODWALL
Internet: support@metrowerks.ca, with cc: to dpodwall@world.std.com
There are several new features in this release. Documentation will
be available with the official release on the DR3 CD.
## Important notes for Power Macintosh users ##
- This release has two patchers: one for the MW Debug/PPC application,
and one for DebugServices for PowerPC. Please run the patchers on
fresh copies from your DR2 CD. PPCTraceEnabler does not required
patching, but is still required for debugging. Remove the old
DebugServices and make sure you are running the updated version.
- If you also have the Macintosh Debugger for PowerPC (formerly
R2DB) from Apple’s Macintosh on RISC SDK, make sure you deactivate
the PPC Debugger Nub when using the Metrowerks debugger. Do this
via the “Debugger Nub Controls” control panel. When enabled, the
PPC Debugger Nub causes the Metrowerks debugger to run *much* slower.
- Any crashes that occur in 68K emulated code are not trapped by the
DebugServices. It is a good idea to run Macsbug 6.5d6 or later
along with the Metrowerks debugger.
- The DebuggerINIT, used by the 68K debugger, is incompatible with the
PowerPC Thread Manager extension. If you use the Thread Manager do not
install DebuggerINIT. DebuggerINIT is not used for PowerPC debugging.
This is a beta release of the Metrowerks Debuggers for 68K and
PowerPC.
Summary of changes
``````````````````
Here's a summary of the new features since the a1 release on the
DR2 CD. Further information is available in the online
documentation.
- The collection window provides a single place where you can
look at frequently use local variables, global variables,
struct members, and array elements without lots of window
switching and scrolling around. Use the “Copy to Collection”
command to add the selected item to the collection window.
If you have installed Macintosh Drag and Drop then you can drag
and drop variables onto the collection window.
Collection window contents are currently not saved across
debugger sessions.
- The array window has been enhanced to support specifying the array
size, and to allow binding the array address to a variable, register,
or absolute address.
The array window has an expandable information pane. When the pane is
collapsed, it shows the array element type and starting address.
The window title indicates what the array is bound to as follows:
variable name: starting array address is the variable's address for
non-pointer variables. For pointer variables the array address is
the pointer value. Created by selecting “Open Array Window” with
an array or pointer variable selected.
register name: starting array address is the register value. Created
by selecting “View Memory As…” with a 4-byte register selected.
hex address: starting array address is the absolute address. Created
by selecting “View Memory As…” with a variable selected.
The information pane expands to show the array binding value, binding type,
array size, and struct member selection.
The array binding value is either a variable name, register name, or
address. It can only be edited when the array is bound to an address.
The radio buttons indicate the array binding type. It can only be changed
to address binding.
The array size applies to vectors. You can specify the array size to any
desired value.
The struct member selection popup applies only when array elements are
of struct type. It allows you to filter out all but a single struct member
to get an overview of that member's value for the whole array. For example,
if you have an array of Rect and want to see the "top" member without
expanding each element, select "top" in the popup. The value of "top"
is shown for each array element.
When Macintosh Drag and Drop is available, you can rebind an existing
array window to a different variable or register by dragging and dropping
a variable or register. Registers must be 4-bytes and can be dragged by
clicking on the register name in a register window. Array elements can be
dragged to the collection window.
As mentioned before, the “View Memory As…” command opens an array window
bound to an address or register. This interprets memory as an array of
some type, not as a hex dump. You are prompted to specify the element type
before the window is displayed.
- The register windows support display and editing of CPU registers.
To conserve screen real estate, the windows come up displaying only
the general data and address registers. Zoom the window to display
the full set of registers. Status and condition registers are displayed
according to the logical fields of the register. The single bit fields
can be toggled by doubling-click, or selecting and hitting return/enter.
- The toolbar window offers shortcuts for the most commonly used
Control menu commands. The toolbar visibility is remembered across runs,
so if you don't like it, then hide it.
- Some preferences can be specified with the “Preferences…” command. Here
is a description of what they do:
- Save window settings…
Enables saving the local .dbg files. These files contain window settings
and optionally, breakpoints.
- Save breakpoints
If saving a .dbg file is enabled, you can separately enable/disable
breakpoint saving.
- Use temporary memory for .SYM…
When enabled, the debugger uses MultiFinder memory to store the
SYM file data. This lets you keep the debugger partition smaller.
The default debugger partition assumes this option is enabled, so
when disabling it you should increase the debugger partition by
the SYM file size.
- At startup, prompt for SYM file…
Determines the debugger behavior when the debugger is launched
without a SYM file. When enabled, the debugger prompts for a SYM file,
when disabled, the debugger does nothing.
- Automatically launch applications…
When enabled, the debugger automatically sets a breakpoint at main()
and runs your application. Disable this if you want to debug code
that executes before main() is entered, such as C++ static constructors.
There is no way to step into that code, so you need to manually set
breakpoints at the desired locations. The current setting can be
temporarily overriden by holding down the option key as the file is
being loaded.
- Ignore file modification dates
Disables the warnings that occur when the application or source
file modification date doesn't match the date stored in the SYM file.
This usually means the file was changed since compiling or linking, and
the debugger will not have correct information for some or all of the
program. If your build environment or application cause this warning
to become annoying then you can shut off the warnings.
- Always prompt for source file location…
If you specify full paths in the SYM file then the debugger usually
can find all your files when debugging. When it can't find a file the
debugger will prompt you to find it, and remember the folder that the
file was in. The next time it needs to find a file in the same session,
the debugger will look in those folders for the new file. Disabling this
option causes the debugger to always prompt for the file if it is not
where the SYM file says it should be.
- In variable panes, show variable types by default.
When enabled, new windows with variable panes will show the variable
types. This setting is also stored in the .dbg file, which overrides
the global setting.
- Attempt to use the dynamic type of C++ objects.
When enabled, the debugger tries to show the runtime type of an
object. Disable this to always use just the static type.
- Default size for unbound array.
Specifies the array size to use when no size information is available.
KNOWN BUGS AND OTHER CAVEATS
````````````````````````````
- On the PowerPC, if the debugger quits due to an assertion failure or out
of memory alert, you should restart the machine before attempting to use
the debugger again. Otherwise the debugger may not be able to establish
a communication session with the nub. This does not apply to 68K.
- On PowerPC, don't attempt to step out of a PowerPC routine into
a 68K routine. The system will hang. Either DebugServices or the
Metrowerks Debugger will catch this in a future release.
- The environment occasionally fails to put in symbolic information for some
types in the SYM file. If the debugger refuses to display a struct or
class variable, that is probably the cause.
- No type information is currently available for the QuickDraw globals, including
qd.thePort.
- Window placement is not very smart yet.
- Redrawing has not been optimized for updating, resizing, and context switch.
Some may come with future PowerPlant releases, and some is debugger-specific.
- Make sure A6 frames are enabled when debugging 68K programs.
- On PowerPC, when instruction scheduling is enabled the compiler is free to
rearrange code within basic blocks. The sequence of code within basic
blocks may not correspond to the sequence of statements in your source code.
Because of this, when instruction scheduling is enabled the compiler only
puts statements at the beginning of each basic block. This means
that you can only step to or set breakpoints at the start of each
basic block. This is not a bug.
Bug Reports
```````````
Please send in your bug reports using the Applelink Bug Report Template stored
in the release notes folder. Send reports to:
Applelink: METROWERKS with cc:DPODWALL
Internet: support@metrowerks.ca with cc:dpodwall@world.std.com
Happy debugging!
-------------------------------------------------------------------------
Dan Podwall AppleLink: DPODWALL
Metrowerks, Inc. Internet: dpodwall@world.std.com